home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Internet Tools (InfoMagic)
/
Internet Tools.iso
/
dos_win
/
winsock
/
maillist
/
94-05.Z
/
94-05
/
000189_news@bigblue.oit.unc.edu_Fri May 13 15:15:18 1994.msg
< prev
next >
Wrap
Internet Message Format
|
1994-05-31
|
2KB
Received: from bigblue.oit.unc.edu by SunSITE.Unc.EDU (5.65c+IDA/FvK-1.07) with SMTP
id AB29577; Fri, 13 May 1994 15:15:18 -0400
Received: by bigblue.oit.unc.edu (AIX 3.2/UCB 5.64/4.03)
id AA17702; Fri, 13 May 1994 15:12:03 -0400
Received: from GATEWAY by bigblue with netnews
for winsock@sunsite.unc.edu (winsock@sunsite.unc.edu)
To: winsock@sunsite.unc.edu
Date: Fri, 13 May 1994 15:02:31
From: Gregory_French@brown.edu (Greg French)
Message-Id: <Gregory_French.161.007DD816@brown.edu>
Organization: Brown University
Sender: ses
References: <2qviju$du0@ratatosk.uninett.no>
Subject: Re: WSAAsyncSelect(.., FD_WRITE | FD_READ) question!
>We are having trouble with FD_READ and FD_WRITE messages!
>We would like to use the function WSAAsyncSelect() this way:
> WSAAsyncSelect(s, hWnd, READ_OR_WRITE, FD_READ | FD_WRITE);
>The READ_OR_WRITE message calls a function of ours.
>Our question is:
> Can one find out in this function if it was an FD_READ
> or an FD_WRITE that called the function?
It's pretty easy:
switch(WSAGETSELECTEVENT(lParam)){
case FD_READ:
// Code goes here...
break;
case FD_WRITE:
// Code goes here...
break;
case FD_CLOSE:
// Code goes here...
break;
}
NOTE:
Keep in mind that READ is "level-triggered", while WRITE is "edge-triggered".
This means that you will keep getting READ messages WHENEVER you should
read from the socket.
On the other hand, you only get a WRITE message ONCE, signalling that you can
begin writing to the socket. After that, keep writing unless you get an
error. If you do get an error, you will get ONE more WRITE message when
writing can resume, etc...
Good Luck,
Greg